package cn.fuxi2022.module.pay.mapper;

import cn.fuxi2022.model.empty.applets.GroupStudentPayLog;
import cn.fuxi2022.model.empty.count.DoughnutChart;
import cn.fuxi2022.model.empty.count.TempChart;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * <p>
 * 社员支付日志表 Mapper 接口
 * </p>
 *
 * @author Fuxi
 * @since 2022-09-26 16:53:28
 */
@Mapper
public interface GroupStudentPayLogMapper extends BaseMapper<GroupStudentPayLog> {

    /**
     * 查询订单数
     */
    int countPayLog();

    /**
     * 查询用户支付所需时间（统计成功订单后取平均值）
     */
    int payUseTime();

    /**
     * 当前系统的总金额（不包括已退款）
     */
    int sumPayTotal();

    /**
     * 查询未支付 和 已支付 的用户个数
     */
    DoughnutChart isPayStudentCount();

    /**
     * 查询未支付 和 已支付 的用户个数
     */
    DoughnutChart noPayStudentCount();

    /**
     * 查询订单数最多的前10名用户
     */
    List<TempChart> orderMostStudent();

    /**
     * 支付速度最快的前10名用户
     */
    List<TempChart> orderFastStudent();

    /**
     * 订单数最多的前10时间段
     */
    List<TempChart> orderMostTime();

    /**
     * 查询成功订单、等待支付订单、超时订单、关闭订单、已退款 个数
     */
    List<DoughnutChart> orderStatusToMap();

    /**
     * 各个时间段的订单数（按照时间排序）
     */
    List<DoughnutChart> orderTime();
}
